<?xml version="1.0" encoding="UTF-8"?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>extensions: interface for the extension support</title>
    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
    <link rel="up" href="general.html" title="API"/>
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <link rel="chapter" href="general.html" title="API"/>
  </head>
  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
      <tr valign="middle">
        <td>
          <a accesskey="p" href="libxslt-documents.html">
            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
          </a>
        </td>
        <td>
          <a accesskey="u" href="general.html">
            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
          </a>
        </td>
        <td>
          <a accesskey="h" href="index.html">
            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
          </a>
        </td>
        <td>
          <a accesskey="n" href="libxslt-extra.html">
            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
          </a>
        </td>
        <th width="100%" align="center">libxslt Reference Manual</th>
      </tr>
    </table>
    <h2>
      <span class="refentrytitle">extensions</span>
    </h2>
    <p>extensions - interface for the extension support</p>
    <p>This provide the API needed for simple and module extension support. </p>
    <p>Author(s): Daniel Veillard </p>
    <div class="refsynopsisdiv">
      <h2>Synopsis</h2>
      <pre class="synopsis">int	<a href="#xsltCheckExtPrefix">xsltCheckExtPrefix</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI);
int	<a href="#xsltCheckExtURI">xsltCheckExtURI</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI);
void	<a href="#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a>		(FILE * output);
<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	<a href="#xsltExtElementLookup">xsltExtElementLookup</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>						 const xmlChar * name, <br/>						 const xmlChar * URI);
typedef void * <a href="#xsltExtInitFunction">xsltExtInitFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI);
<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	<a href="#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a>	(const xmlChar * name, <br/>							 const xmlChar * URI);
<a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>	<a href="#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a>	(const xmlChar * name, <br/>							 const xmlChar * URI);
xmlXPathFunction	<a href="#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a>	(const xmlChar * name, <br/>							 const xmlChar * URI);
<a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>	<a href="#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a>	(const xmlChar * name, <br/>							 const xmlChar * URI);
typedef void <a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI, <br/>					 void * data);
void	<a href="#xsltFreeCtxtExts">xsltFreeCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
void	<a href="#xsltFreeExts">xsltFreeExts</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
void *	<a href="#xsltGetExtData">xsltGetExtData</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI);
xmlHashTablePtr	<a href="#xsltGetExtInfo">xsltGetExtInfo</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI);
int	<a href="#xsltInitCtxtExts">xsltInitCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
void	<a href="#xsltInitElemPreComp">xsltInitElemPreComp</a>		(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/>					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 xmlNodePtr inst, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/>					 <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc);
void	<a href="#xsltInitGlobals">xsltInitGlobals</a>			(void);
<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltNewElemPreComp">xsltNewElemPreComp</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 xmlNodePtr inst, <br/>						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>							 xmlNodePtr inst);
typedef <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a href="#xsltPreComputeFunction">xsltPreComputeFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 xmlNodePtr inst, <br/>						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
int	<a href="#xsltRegisterExtElement">xsltRegisterExtElement</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
int	<a href="#xsltRegisterExtFunction">xsltRegisterExtFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 xmlXPathFunction function);
int	<a href="#xsltRegisterExtModule">xsltRegisterExtModule</a>		(const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc);
int	<a href="#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a>	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform);
int	<a href="#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a>	(const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br/>					 <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/>					 <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc);
int	<a href="#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a>	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 xmlXPathFunction function);
int	<a href="#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a>	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function);
int	<a href="#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * prefix, <br/>					 const xmlChar * URI);
void	<a href="#xsltRegisterTestModule">xsltRegisterTestModule</a>		(void);
void	<a href="#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
void	<a href="#xsltShutdownExts">xsltShutdownExts</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
typedef void * <a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI);
typedef void <a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI, <br/>					 void * data);
void *	<a href="#xsltStyleGetExtData">xsltStyleGetExtData</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI);
void *	<a href="#xsltStyleStylesheetLevelGetExtData">xsltStyleStylesheetLevelGetExtData</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 const xmlChar * URI);
typedef void <a href="#xsltTopLevelFunction">xsltTopLevelFunction</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 xmlNodePtr inst);
int	<a href="#xsltUnregisterExtModule">xsltUnregisterExtModule</a>		(const xmlChar * URI);
int	<a href="#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a>	(const xmlChar * name, <br/>					 const xmlChar * URI);
int	<a href="#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a>	(const xmlChar * name, <br/>					 const xmlChar * URI);
int	<a href="#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a>	(const xmlChar * name, <br/>					 const xmlChar * URI);
<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	<a href="#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a>	(xmlXPathParserContextPtr ctxt);
</pre>
    </div>
    <div class="refsect1" lang="en">
      <h2>Description</h2>
    </div>
    <div class="refsect1" lang="en">
      <h2>Details</h2>
      <div class="refsect2" lang="en">
        <div class="refsect2" lang="en"><h3><a name="xsltExtInitFunction"/>Function type xsltExtInitFunction</h3><pre class="programlisting">void *	xsltExtInitFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI)<br/>
</pre><p>A function called at initialization time of an XSLT extension module.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this transformation.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtShutdownFunction"/>Function type xsltExtShutdownFunction</h3><pre class="programlisting">void	xsltExtShutdownFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI, <br/>					 void * data)<br/>
</pre><p>A function called at shutdown time of an XSLT extension module.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this module</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltPreComputeFunction"/>Function type xsltPreComputeFunction</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltPreComputeFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 xmlNodePtr inst, <br/>						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
</pre><p/>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltStyleExtInitFunction"/>Function type xsltStyleExtInitFunction</h3><pre class="programlisting">void *	xsltStyleExtInitFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI)<br/>
</pre><p>A function called at initialization time of an XSLT extension module.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this transformation.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltStyleExtShutdownFunction"/>Function type xsltStyleExtShutdownFunction</h3><pre class="programlisting">void	xsltStyleExtShutdownFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI, <br/>					 void * data)<br/>
</pre><p>A function called at shutdown time of an XSLT extension module.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this module</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltTopLevelFunction"/>Function type xsltTopLevelFunction</h3><pre class="programlisting">void	xsltTopLevelFunction		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 xmlNodePtr inst)<br/>
</pre><p/>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td/></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltCheckExtPrefix"/>xsltCheckExtPrefix ()</h3><pre class="programlisting">int	xsltCheckExtPrefix		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI)<br/>
</pre><p>Check if the given prefix is one of the declared extensions. This is intended to be called only at compile-time. Called by: xsltGetInheritedNsList() (xslt.c) <a href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (xslt.c)</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace prefix (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if this is an extension, 0 otherwise</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltCheckExtURI"/>xsltCheckExtURI ()</h3><pre class="programlisting">int	xsltCheckExtURI			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI)<br/>
</pre><p>Check if the given prefix is one of the declared extensions. This is intended to be called only at compile-time. Called by: xsltPrecomputeStylesheet() (xslt.c) <a href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (xslt.c)</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if this is an extension, 0 otherwise</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltDebugDumpExtensions"/>xsltDebugDumpExtensions ()</h3><pre class="programlisting">void	xsltDebugDumpExtensions		(FILE * output)<br/>
</pre><p>Dumps a list of the registered XSLT extension functions and elements</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output, if NULL stdout is used</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtElementLookup"/>xsltExtElementLookup ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	xsltExtElementLookup	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>						 const xmlChar * name, <br/>						 const xmlChar * URI)<br/>
</pre><p>Looks up an extension element. @ctxt can be NULL to search only in module elements.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT process context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the element callback or NULL if not found</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtModuleElementLookup"/>xsltExtModuleElementLookup ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	xsltExtModuleElementLookup	(const xmlChar * name, <br/>							 const xmlChar * URI)<br/>
</pre><p>Looks up an extension module element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtModuleElementPreComputeLookup"/>xsltExtModuleElementPreComputeLookup ()</h3><pre class="programlisting"><a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>	xsltExtModuleElementPreComputeLookup	(const xmlChar * name, <br/>							 const xmlChar * URI)<br/>
</pre><p>Looks up an extension module element pre-computation function</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtModuleFunctionLookup"/>xsltExtModuleFunctionLookup ()</h3><pre class="programlisting">xmlXPathFunction	xsltExtModuleFunctionLookup	(const xmlChar * name, <br/>							 const xmlChar * URI)<br/>
</pre><p>Looks up an extension module function</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the function if found, NULL otherwise.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltExtModuleTopLevelLookup"/>xsltExtModuleTopLevelLookup ()</h3><pre class="programlisting"><a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>	xsltExtModuleTopLevelLookup	(const xmlChar * name, <br/>							 const xmlChar * URI)<br/>
</pre><p>Looks up an extension module top-level element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltFreeCtxtExts"/>xsltFreeCtxtExts ()</h3><pre class="programlisting">void	xsltFreeCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
</pre><p>Free the XSLT extension data</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltFreeExts"/>xsltFreeExts ()</h3><pre class="programlisting">void	xsltFreeExts			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
</pre><p>Free up the memory used by XSLT extensions in a stylesheet</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltGetExtData"/>xsltGetExtData ()</h3><pre class="programlisting">void *	xsltGetExtData			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * URI)<br/>
</pre><p>Retrieve the data associated to the extension module in this given transformation.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not present</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltGetExtInfo"/>xsltGetExtInfo ()</h3><pre class="programlisting">xmlHashTablePtr	xsltGetExtInfo		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI)<br/>
</pre><p>looks up URI in extInfos of the stylesheet</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>pointer to a stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI desired</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hash table if found, else NULL</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltInitCtxtExts"/>xsltInitCtxtExts ()</h3><pre class="programlisting">int	xsltInitCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
</pre><p>Initialize the set of modules with registered stylesheet data</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of modules initialized or -1 in case of error</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltInitElemPreComp"/>xsltInitElemPreComp ()</h3><pre class="programlisting">void	xsltInitElemPreComp		(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/>					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 xmlNodePtr inst, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/>					 <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc)<br/>
</pre><p>Initializes an existing #xsltElemPreComp structure. This is usefull when extending an #xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an #xsltElemPreComp (or generally a derived structure)</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the transform function</td></tr><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the @comp deallocator</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltInitGlobals"/>xsltInitGlobals ()</h3><pre class="programlisting">void	xsltInitGlobals			(void)<br/>
</pre><p>Initialize the global variables for extensions</p>
</div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltNewElemPreComp"/>xsltNewElemPreComp ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltNewElemPreComp	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 xmlNodePtr inst, <br/>						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
</pre><p>Creates and initializes an #xsltElemPreComp</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the transform function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new and initialized #xsltElemPreComp</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltPreComputeExtModuleElement"/>xsltPreComputeExtModuleElement ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltPreComputeExtModuleElement	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>							 xmlNodePtr inst)<br/>
</pre><p>Precomputes an extension module element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the precomputed data</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtElement"/>xsltRegisterExtElement ()</h3><pre class="programlisting">int	xsltRegisterExtElement		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
</pre><p>Registers an extension element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtFunction"/>xsltRegisterExtFunction ()</h3><pre class="programlisting">int	xsltRegisterExtFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>					 const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 xmlXPathFunction function)<br/>
</pre><p>Registers an extension function</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModule"/>xsltRegisterExtModule ()</h3><pre class="programlisting">int	xsltRegisterExtModule		(const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc)<br/>
</pre><p>Register an XSLT extension module to the library.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModuleElement"/>xsltRegisterExtModuleElement ()</h3><pre class="programlisting">int	xsltRegisterExtModuleElement	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/>					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform)<br/>
</pre><p>Registers an extension module element.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>precomp</tt></i>:</span></td><td>the pre-computation callback</td></tr><tr><td><span class="term"><i><tt>transform</tt></i>:</span></td><td>the transformation callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModuleFull"/>xsltRegisterExtModuleFull ()</h3><pre class="programlisting">int	xsltRegisterExtModuleFull	(const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br/>					 <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/>					 <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc)<br/>
</pre><p>Register an XSLT extension module to the library.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>styleInitFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>styleShutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModuleFunction"/>xsltRegisterExtModuleFunction ()</h3><pre class="programlisting">int	xsltRegisterExtModuleFunction	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 xmlXPathFunction function)<br/>
</pre><p>Registers an extension module function.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the function callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModuleTopLevel"/>xsltRegisterExtModuleTopLevel ()</h3><pre class="programlisting">int	xsltRegisterExtModuleTopLevel	(const xmlChar * name, <br/>					 const xmlChar * URI, <br/>					 <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function)<br/>
</pre><p>Registers an extension module top-level element.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the top-level element callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtPrefix"/>xsltRegisterExtPrefix ()</h3><pre class="programlisting">int	xsltRegisterExtPrefix		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * prefix, <br/>					 const xmlChar * URI)<br/>
</pre><p>Registers an extension namespace This is called from xslt.c during compile-time. The given prefix is not needed. Called by: xsltParseExtElemPrefixes() (new function) xsltRegisterExtPrefix() (old function)</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix used (optional)</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 if the @URI was already registered as an extension namespace and -1 in case of failure</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltRegisterTestModule"/>xsltRegisterTestModule ()</h3><pre class="programlisting">void	xsltRegisterTestModule		(void)<br/>
</pre><p>Registers the test module</p>
</div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltShutdownCtxtExts"/>xsltShutdownCtxtExts ()</h3><pre class="programlisting">void	xsltShutdownCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
</pre><p>Shutdown the set of modules loaded</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltShutdownExts"/>xsltShutdownExts ()</h3><pre class="programlisting">void	xsltShutdownExts		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
</pre><p>Shutdown the set of modules loaded</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltStyleGetExtData"/>xsltStyleGetExtData ()</h3><pre class="programlisting">void *	xsltStyleGetExtData		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>					 const xmlChar * URI)<br/>
</pre><p>Retrieve the data associated to the extension module in this given stylesheet. Called by: xsltRegisterExtPrefix(), ( xsltExtElementPreCompTest(), xsltExtInitTest )</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not present</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltStyleStylesheetLevelGetExtData"/>xsltStyleStylesheetLevelGetExtData ()</h3><pre class="programlisting">void *	xsltStyleStylesheetLevelGetExtData	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>						 const xmlChar * URI)<br/>
</pre><p>Retrieve the data associated to the extension module in this given stylesheet.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not present</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltUnregisterExtModule"/>xsltUnregisterExtModule ()</h3><pre class="programlisting">int	xsltUnregisterExtModule		(const xmlChar * URI)<br/>
</pre><p>Unregister an XSLT extension module from the library.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltUnregisterExtModuleElement"/>xsltUnregisterExtModuleElement ()</h3><pre class="programlisting">int	xsltUnregisterExtModuleElement	(const xmlChar * name, <br/>					 const xmlChar * URI)<br/>
</pre><p>Unregisters an extension module element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltUnregisterExtModuleFunction"/>xsltUnregisterExtModuleFunction ()</h3><pre class="programlisting">int	xsltUnregisterExtModuleFunction	(const xmlChar * name, <br/>					 const xmlChar * URI)<br/>
</pre><p>Unregisters an extension module function</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltUnregisterExtModuleTopLevel"/>xsltUnregisterExtModuleTopLevel ()</h3><pre class="programlisting">int	xsltUnregisterExtModuleTopLevel	(const xmlChar * name, <br/>					 const xmlChar * URI)<br/>
</pre><p>Unregisters an extension module top-level element</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div></div>
        <hr/>
        <div class="refsect2" lang="en"><h3><a name="xsltXPathGetTransformContext"/>xsltXPathGetTransformContext ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	xsltXPathGetTransformContext	(xmlXPathParserContextPtr ctxt)<br/>
</pre><p>Provides the XSLT transformation context from the XPath transformation context. This is useful when an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is needed for example to retrieve the associated data pertaining to this XSLT transformation.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XSLT transformation context or NULL in case of error.</td></tr></tbody></table></div></div>
        <hr/>
      </div>
    </div>
  </body>
</html>
